#ifndef _RUEDA_H_
#define _RUEDA_H_

#include "Cilindro.h"
#include "Disco.h"

class Rueda : public Dibujable
	{
	private:
		/*
		*	cantidadSoldaduras: cantidad de uniones soldadas que unen ambos discos.
		*	separacionDiscos: cantidad de separacion entre ambos discos.
		*	velAngular: velocidad angular w (omega) a la cual se mueve la rueda.
		*	cilindro: cilindro que se utiliza para el modelado de Rueda.
		*	disco: disco que se utiliza para el modelado de Rueda.
		*/
		unsigned int cantidadSoldaduras;
		unsigned int separacionDiscos;
		int velAngular;
		Cilindro *cilindro;
		Disco *disco;

	public:
		/*
		*	Rueda(unsigned int cantRayos, unsigned int radio, unsigned int cantSoldaduras, unsigned int separacionDiscos)
		*	Constructor de Rueda, donde se le pasa la cantidad de rayos que se modelan, el radio, la cantidad de soldaduras y la separacion entre discos.
		*/
		Rueda(unsigned int cantRayos, unsigned int radio, unsigned int cantSoldaduras, unsigned int separacionDiscos);
		
		/*
		*	~Rueda()
		*	Destructor de Rueda.
		*/
		~Rueda();

		/*
		*	int getVelAngular() const
		*	getter de velAngular.
		*/
		int getVelAngular() const;

		/*
		*	void setVelAngular(int velAngular)
		*	setter de velAngular.
		*/
		void setVelAngular(int velAngular);


		GLfloat getRadioRueda() const;

		/*
		*	dibujar(int tiempoDurEscena)
		*	funcion que se encarga de dibujar una Rueda.
		*/
		void dibujar(int tiempoDurEscena);

		friend class RuedaPrincipal;
		friend class RuedaSecundaria;
	};

#endif